Conventionally, there is a technique for automatically updating an application which is executable by an information processing apparatus. For example, in a conventional game apparatus, application update is executed automatically at a specified time. At this time, the game apparatus performs a series of processes including a process of checking whether application update is necessary, a process of obtaining update data if the update is necessary, and a process of updating the application using the update data in a consecutive manner.
In the conventional technique, the series of processes are consecutively performed, and thus there is a possibility that the processes with regard to updating an application may not be efficiently performed.
Therefore, the present application discloses an information processing apparatus, a terminal system, a storage medium having stored therein an information processing program for efficiently executing application update, and a method of obtaining update data.
(1) An example of the information processing apparatus disclosed in the present specification is an information processing apparatus communicable with a server via a network. The information processing apparatus includes an update information obtaining unit, a first update determination unit, and a first update data obtaining unit. The update information obtaining unit obtains update information for determining presence of an update of each application from the server at a first timing and saves the obtained update information. The first update determination unit determines, for each of at least one of applications stored in a storage unit which can be accessed by the information processing apparatus, whether there is an update at a second timing independent of the first timing based on the saved update information. The first update data obtaining unit obtains, from the server, update data used for updating the application with respect to which the first update determination unit has determined that the update is present.
In the above description, to “obtain update information from the server at a first timing” means both that the update information is obtained always at the first timing and that the update information is obtained as necessary (for example, when a new piece of update information is present as in the exemplary embodiment described later) at the first timing.
According to the configuration of (1) described above, the information processing apparatus performs an update information obtaining process and an update data obtaining process at independent timings. Accordingly, the information processing apparatus can efficiently confirm a presence of an update of each application and (when the update is present) obtain update data.
(2) The information processing apparatus may further include a first timing determination unit and a second timing determination unit. The first timing determination unit determines whether the first timing has come based on whether a predetermined first condition is satisfied. The second timing determination unit determines whether the second timing has come based on whether a second condition different from the first condition is satisfied. In this case, the first update determination unit makes a determination when the second timing determination unit has determined that the second timing has come.
According to the configuration of (2) described above, whether the second timing has come is determined based on a condition different from that of the first timing. Thus, it is made possible to appropriately determine a timing of determining presence of an update.
(3) The update information obtaining unit may obtain update information for determining presence of updates of a plurality of applications from the server. The first update determination unit may determine whether there is an update to one of the applications.
According to the configuration of (3) described above, while the update information is obtained for a plurality of applications collectively at one time, presence of an update is determined for each application individually. Thus, the number of times of performing the obtaining process can be reduced by collectively obtaining the update information, and the determination process can be efficiently performed by determining presence of an update for each application.
(4) The first timing may be caused by a user performing a predetermined first operation. The second timing may be caused by the user performing a predetermined second operation different from the first operation.
According to the configuration of (4) described above, the first timing and the second timing arrive (are caused) respectively in accordance with the operations performed by the user. Thus, the information processing apparatus need not measure a timing which arrives periodically, and thereby processes with regard to an update (processes of obtaining the update information, obtaining the update data, and the like) can be easily performed.
(5) The first timing may be between start-up of the information processing apparatus and issuance of an instruction to start the application stored in the storage unit.
According to the configuration of (5) described above, the information processing apparatus can obtain a new piece of update information before the application is started. Thus, the information processing apparatus can determine presence of an update for the application before executing the application and update the application as necessary.
(6) The first timing may be based on a process of displaying a menu image with which the user can issue an instruction to start the application stored in the storage unit.
According to the configuration of (6) described above, the update information is obtained at a timing based on a timing at which the menu image is displayed. Because the menu image is displayed at a certain frequency, the information processing apparatus can obtain the update information at an appropriate frequency. Thus, it is made possible to reduce possibility that the application cannot be updated to the latest version as a consequence of that the update information obtaining process is too infrequent to obtain the latest update information, for example.
(7) The second timing is in response to an instruction to start the application stored in the storage unit having been issued, and the first update determination unit may determine, at the second timing, whether there is an update to the application with respect to which the instruction to start has been issued.
According to the configuration of (7) described above, the information processing apparatus obtains the update data when the application is started. Thus, the update data for an application which may or may not be used (executed) is not obtained, and thereby it is made possible to obtain the update data efficiently. Further, because the information processing apparatus obtains the update information in advance at the first timing prior to the second timing, the update information need not be obtained when an application is started. Accordingly, a time from an instruction to start an application to execution of the application can be reduced, thereby reducing a wait time of the user until the application is started.
(8) The first update data obtaining unit may obtain update data, for the application with respect to which it has been determined that the update is present, before the application is started. In this case, the information processing apparatus may further include a first application execution unit. When an instruction to start the application stored in the storage unit is issued, the first application execution unit executes the application onto which the update using the update data has been reflected.
According to the configuration of (8) described above, the information processing apparatus updates the application before executing the application. Thus, the user can use a new version of the application after being updated.
(9) The update information obtaining unit may obtain and save update information together with update version information representing a version of the update information, and when the first timing arrives next time, obtain the update version information from the server and determine whether or not to obtain the update information based on the obtained update version information.
According to the configuration of (9) described above, the information processing apparatus determines whether or not to obtain the update information using the update version information obtained from the server. Thus the update information can be obtained efficiently.
(10) The update information obtaining unit may obtain update information for one or more applications set in the server regardless of whether the applications are stored in the storage unit.
According to the configuration of (10) described above, when the server which transmits the update information is requested by the information processing apparatus to transmit the update information, the server need not determine with respect to which application the server should transmit the update information. According to the configuration of (10) described above, it is made possible to reduce a processing load on the server.
(11) The update information obtaining unit may obtain the update information from the server which can provide the information processing apparatus with at least one of the update data and an application executable by the information processing apparatus.
According to the configuration of (11) described above, the server which provides the update information of an application provides the update data for the application and/or the application itself. Thus, when there are any additions and/or changes to the application to be provided, management of the application is facilitated.
(12) The information processing apparatus may further include a second update determination unit and a second update data obtaining unit. The second update determination unit determines, in response to update information having been obtained and regardless of whether the second timing has come, whether there is an update to an application which satisfies a predetermined condition among the applications stored in the storage unit, based on the update information. The second update data obtaining unit obtains, from the server, update data used for updating the application with respect to which the second update determination unit has determined that the update is present.
According to the configuration of (12) described above, in case of a predetermined application, presence of an update is determined regardless of the second timing, and update data is obtained when the update is present. Thus, in the case of the predetermined application, because the information processing apparatus need not obtain the update data after the second timing, a time taken from the second timing to execution of the application can be reduced.
(13) The second update determination unit may determine an application which satisfies the predetermined condition based on an execution history of each application stored in the storage unit.
According to the configuration of (13) described above, in case of an application which is highly likely to be executed, the update data is obtained in advance prior to the second timing. Thus, in case of such an application, there is no need to obtain the update data during a time period from the second timing and the execution of the application, and thereby the time period can be shortened.
(14) The second update data obtaining unit may obtain update data regardless of whether an application other than an application corresponding to the update data is being executed in the information processing apparatus.
According to the configuration of (14) described above, the information processing apparatus obtains update data even when an application other than a predetermined application corresponding to the update data is being executed. Thus, even when the update data for the predetermined application is obtained, the user can use at least the other application.
(15) The information processing apparatus may further include a second application execution unit which executes, when an instruction to start the application with respect to which the second update determination unit has determined that the update is present is issued, the application onto which the update using the update data has been reflected.
According to the configuration of (15) described above, in case of the predetermined application, the user can use the new version of the application after being updated.
(16) The update information obtaining unit may obtain update information for determining presence of updates of a plurality of applications from the server. The first update determination unit may determine whether there is an update to each of a part of the plurality of applications represented by the update information.
According to the configuration of (16) described above, while the update information is obtained for a plurality of applications collectively at one time, presence of an update is determined for each of only a part of the applications. By thus obtaining the update information collectively, the number of times of performing the obtaining process can be reduced while the determination process can be performed efficiently by determining the presence of the update for each of only the part of the applications.
(17) The second timing may be in response to the information processing apparatus having shifted to a non-use mode.
According to the configuration of (17) described above, because the update data is obtained in the non-use mode, there is no need for the user to wait (no need to wait until the update data is obtained), and the update data can be obtained at an appropriate timing.
(18) The first update determination unit may determine whether there is an update to each of one or more applications selected, based on the respective execution histories stored in the storage unit, from among the applications stored in the storage unit which can be accessed by the information processing apparatus.
According to the configuration of (18) described above, presence of an update is determined for an application which is highly likely to be used, and thus the update data can be obtained efficiently.
It is noted that the present specification discloses an information processing system having the same functions as those of the respective components of the information processing apparatuses in the above (1) to (18), and discloses a storage medium having stored therein an information processing program which causes a computer of the information processing apparatuses to perform the same processes as those of the respective components. Furthermore, the present specification discloses a method of obtaining update data performed in the above (1) to (18).
According to the information processing apparatus, terminal system, storage medium having stored therein an information processing program, and the method of obtaining data for updating an application described above, update information and update data are obtained at independent timings. Thus it is made possible to efficiently check presence of an update of an application and (if there is the update) obtain the update data.
These and other objects, features, aspects and advantages of the exemplary embodiment will become more apparent from the following detailed description when taken in conjunction with the accompanying drawings.